c语言高难度算法,菜鸟勿进! ^_^

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:02:07
题目是这样的,输入一列字符串,如(A1,A3,A2,A4),经过排序后输出(A1,A2,A3,A4)
此算法看似简单,网上我问过无数人,无解.大概大家都菜吧;
求算法,本人菜鸟,谢谢大虾~!!!
感激不尽,唯10分表我心~!

//我做出来了。
//输入:A1,A3,A2,A8,A7,A6,A5,A4
//输出:A1,A2,A3,A4,A5,A6,A7,A8
//只是对输入的字串长度限制在100以内。
#include "stdio.h"
int main( )
{
char str1[100];
//输入字符串
printf("请输入字符串:");
scanf("%s",str1);
//对字符串分组
char str[50][3];
char *p=str1;
int i=0,j=0;
for(;*p!='\0';p++)
{
if(*p!=',')
{
str[i][j]=*p;
j++;
}
else
{
str[i][j]='\0';
i++;
j=0;
}

}
str[i][j]='\0';
i++;
j=0;
//对字串排序

for(j=0;j<i;j++)
for(int k=j+1;k<i;k++)
{
if(str[j][1]>str[k][1])
{
char temp;
temp=str[j][0];
str[j][0]=str[k][0];
str[k][0]=temp;
temp=str[j][1];
str[j][1]=str[k][1];
str[k][1]=temp;
}
}
//复制排序好的字串
p=str1;
for(j=0;j<i;j++)
{
*p=st